perm filename EXTENS.AX[S76,JMC] blob sn#529046 filedate 1980-08-06 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	comment@ Axioms for extensional forms@
C00006 00003	comment@ Axioms aimed at formalizing individual concepts in the context
C00008 ENDMK
C⊗;
comment@ Axioms for extensional forms@

declare INDCONST V V0 V1 V2 V3 ε variable;
declare INDVAR v v0 v1 v2 v3 ε variable;

declare INDVAR u u0 u1 u2 u3 ε termform;
declare INDVAR p p0 p1 p2 p3 ε boolform;
declare INDVAR e e0 e1 e2 e3 ε environment;
declare INDVAR f f0 f1 f2 f3 ε functionform;
declare INDVAR c c0 c1 c2 c3 ε object;

declare OPCONST value(termform,environment) = termform;
declare PREDCONST true(boolform,environment);
declare OPCONST assign(variable,object,environment) = environment;

declare OPCONST apply(functionform,termform) = termform;
declare OPCONST lambda(variable,termform) = functionform;

axiom lambda:	∀v u1 u2 e.(value(apply(lambda(v,u1),u2),e) = value(u1,
assign(v,value(u2,e),e)));;

MOREGENERAL termform ≥ {object,variable};

axiom object:	∀c e.(value(c,e) = c);;

axiom assign:	∀v c e.(value(v,assign(v,c,e)) = c),
		∀v1 v2 c e.(¬v1=v2 ⊃ value(v1,assign(v2,c,e)) = value(v1,e));;

declare OPCONST all(variable,boolform) = boolform;
declare OPCONST exist(variable,boolform) = boolform;
DECLARE OPCONST and(boolform,boolform) = boolform [L←555,R←550];
DECLARE OPCONST or(boolform,boolform) = boolform [L←535,R←540];
DECLARE OPCONST implies(boolform,boolform) = boolform [L←515,R←520];
DECLARE OPCONST equiv(boolform,boolform) = boolform [L←505,R←510];
DECLARE OPCONST not(boolform) = boolform [R←575];

axiom all:	∀ v p e.(true(all(v,p),e) ≡ ∀c.true(p,assign(v,c,e)));;
axiom exist:	∀ v p e.(true(exist(v,p),e) ≡ ∃c.true(p,assign(v,c,e)));;

axiom and:	∀ p1 p2 e.(true(p1 and p2,e) ≡ true(p1,e) ∧ true(p2,e));;
axiom or:	∀ p1 p2 e.(true(p1 or p2,e) ≡ true(p1,e) ∨ true(p2,e));;
axiom implies:	∀ p1 p2 e.(true(p1 implies p2,e) ≡ (true(p1,e) ⊃ true(p2,e)));;
axiom equiv:	∀ p1 p2 e.(true(p1 equiv p2,e) ≡ (true(p1,e) ≡ true(p2,e)));;
axiom not:	∀p e.(true(not p,e) ≡ ¬true(p,e));;

DECLARE OPCONST equal(termform,termform) = boolform [L←600,R←605];

axiom equal:	∀u1 u2 e.(true(u1 equal u2,e) ≡ (value(u1,e) = value(u2,e)));;

mark foo;
declare OPCONST subst(termform,variable,termform) = termform;
axiom subst:	∀v u.(subst(v,v,u) = u),
		∀v u.(subst(u,v,v) = u),
		∀v1 v2 u.(¬v1=v2 ⊃ subst(u,v1,v2) = v2)
;;
comment@ Axioms aimed at formalizing individual concepts in the context
of my "First order theories of propositions and individual concepts"@

declare PREDCONST nec(boolform)[R←570];
declare INDVAR m m0 m1 m2 m3 ε manform;
declare INDCONST Mike Pat Joe John Mary mike pat joe john mary ε manform;
declare OPCONST telephone(manform) = termform[R←610];

declare OPCONST know(manform,termform) = boolform;
declare OPCONST k(manform,boolform) = boolform;

axiom nec:	∀p.(nec p ≡ ∀e.true(p,e));;

axiom telephone:	∀u e.(value(telephone m,e) = telephone value(m,e));;
			
axiom morsubst:
		∀u v m.(subst(u,v,telephone m) = telephone subst(u,v,m))
		∀m p v u.(subst(u,v,k(m,p)) = k(subst(u,v,m),subst(u,v,p)))
		∀m u1 v u2.(subst(u1,v,know(m,u2))
			 = know(subst(u1,v,m),subst(u1,v,u2)))
;;

axiom know:	∀m1 m2 m e.true(know(m,telephone m1) and k(m,m1 equal m2)
			implies know(m,telephone m2),e)
		∀m u u1 u2.nec(k(m,u1 equal u2) implies
			k(m,subst(u1,v,u) equal subst(u2,v,u)))
		∀m u1 u2.nec(k(m,u1 equal u2) and know(m,u1) implies know(m,u2))
;;